﻿using System;
using System.Collections.Generic;
using UpYun.Storage;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // 视频转码参数
            Dictionary<string, object> parameters = new Dictionary<string, object>()
            {
                { "vb", 870 }               // 视频比特率，单位 kbps，默认按照视频原始比特率处理
                , { "s", "720:408" }        // 视频分辨率，默认按照原始分辨率处理
                , { "as", true }            // 是否根据分辨率自动调整视频的比例，默认 false。仅当传递了 s 参数时有效
                , { "r", 25 }               // 视频帧率，默认按照原始帧率处理。推荐值：25、30
                , { "sp", "auto" }          // 旋转角度，默认按照原始视频角度处理。可选值：auto（自动扶正）、 90、 180、 270
                , { "sm", true }            // 是否保留视频元数据，默认 true
                , { "acodec", "libfdk_aac" }// 设置音频编码器，默认按照音频原始编码器处理。可选值：libmp3lame、 libfdk_aac、 copy
                , { "vcodec", "libx264" }   // 设置视频编码器，默认按照视频原始编码器处理。可选值：libx264、 libtheora、 libx265、 libvpx-vp9、 libvpx、 copy
                //, { "an", false }           // 是否禁掉音频，默认 false
                //, { "vn", false }           // 是否禁掉视频，默认 false
                //, { "su", "1.0" }             // 视频加速倍数，默认 1.0。取值范围 [1.0，10.0]
                , { "ar", 44100 }            // 音频采样率，单位 Hz，默认按照原始采样率处理。可选值：44100、 48000、 32000、 22050、 24000、 16000、 0
                , { "ac", 2 }               // 音频声道数，默认按照原始声道数处理。常用值：1表示单声道(mono)、2表示立体声(stereo)等
                //, { "sar", "16:9" }        // 采样长宽比，格式 w:h，常用值 1:1、 4:3 或 16:9
                //, { "dar", "16:9" }         // 显示长宽比，格式 w:h，常用值 1:1、 4:3 或 16:9
                , { "pv", "high" }          // H264 Profile，常用值 baseline、 main、 high 等
                , { "level", 4.0 }          // H264 Level，常用值 3.0、 3.1、 4.0、 4.1、 4.2 等
                , { "f", "mp4" }            // 视频格式。当输出文件没有后缀时，需要指定，其余时候根据输出文件后缀名自动判定
            };


            StorageHelper helper = new StorageHelper("xxx", "xxx", "xxx");

            //string[] taskid = helper.VideoTranscoding(source: "/xxxx.mp4", savePath: "/xxx/Transcoding/1.mp4", parameters: parameters, notifyUrl: "https://xxxxx.xx");            

            //if (taskid?.Length > 0)
            //{
            //    helper.QueryResult(taskid);
            //}
        }
    }
}
